// Copyright (c) 2016, SolidCP
// SolidCP is distributed under the Creative Commons Share-alike license
// 
// SolidCP is a fork of WebsitePanel:
// Copyright (c) 2015, Outercurve Foundation.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without modification,
// are permitted provided that the following conditions are met:
//
// - Redistributions of source code must  retain  the  above copyright notice, this
//   list of conditions and the following disclaimer.
//
// - Redistributions in binary form  must  reproduce the  above  copyright  notice,
//   this list of conditions  and  the  following  disclaimer in  the documentation
//   and/or other materials provided with the distribution.
//
// - Neither  the  name  of  the  Outercurve Foundation  nor   the   names  of  its
//   contributors may be used to endorse or  promote  products  derived  from  this
//   software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,  BUT  NOT  LIMITED TO, THE IMPLIED
// WARRANTIES  OF  MERCHANTABILITY   AND  FITNESS  FOR  A  PARTICULAR  PURPOSE  ARE
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
// ANY DIRECT, INDIRECT, INCIDENTAL,  SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL DAMAGES
// (INCLUDING, BUT NOT LIMITED TO,  PROCUREMENT  OF  SUBSTITUTE  GOODS OR SERVICES;
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)  HOWEVER  CAUSED AND ON
// ANY  THEORY  OF  LIABILITY,  WHETHER  IN  CONTRACT,  STRICT  LIABILITY,  OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE)  ARISING  IN  ANY WAY OUT OF THE USE OF THIS
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

//------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool.
//     Runtime Version:2.0.50727.42
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------

// 
// This source code was auto-generated by wsdl, Version=2.0.50727.42.
// 
namespace SolidCP.Providers.Mail
{
    using System.Diagnostics;
    using System.Web.Services;
    using System.ComponentModel;
    using System.Web.Services.Protocols;
    using System;
    using System.Xml.Serialization;
	using System.Net;


    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Web.Services.WebServiceBindingAttribute(Name = "MailServerSoap", Namespace = "http://smbsaas/solidcp/server/")]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(ServiceProviderItem))]
    public partial class MailServer : Microsoft.Web.Services3.WebServicesClientProtocol
    {

        public ServiceProviderSettingsSoapHeader ServiceProviderSettingsSoapHeaderValue;

        private System.Threading.SendOrPostCallback DomainExistsOperationCompleted;

        private System.Threading.SendOrPostCallback GetDomainOperationCompleted;

        private System.Threading.SendOrPostCallback GetDomainsOperationCompleted;

        private System.Threading.SendOrPostCallback CreateDomainOperationCompleted;

        private System.Threading.SendOrPostCallback UpdateDomainOperationCompleted;

        private System.Threading.SendOrPostCallback DeleteDomainOperationCompleted;

        private System.Threading.SendOrPostCallback DomainAliasExistsOperationCompleted;

        private System.Threading.SendOrPostCallback GetDomainAliasesOperationCompleted;

        private System.Threading.SendOrPostCallback AddDomainAliasOperationCompleted;

        private System.Threading.SendOrPostCallback DeleteDomainAliasOperationCompleted;

        private System.Threading.SendOrPostCallback AccountExistsOperationCompleted;

        private System.Threading.SendOrPostCallback GetAccountsOperationCompleted;

        private System.Threading.SendOrPostCallback GetAccountOperationCompleted;

        private System.Threading.SendOrPostCallback CreateAccountOperationCompleted;

        private System.Threading.SendOrPostCallback UpdateAccountOperationCompleted;

        private System.Threading.SendOrPostCallback DeleteAccountOperationCompleted;

        private System.Threading.SendOrPostCallback GroupExistsOperationCompleted;

        private System.Threading.SendOrPostCallback GetGroupsOperationCompleted;

        private System.Threading.SendOrPostCallback GetGroupOperationCompleted;

        private System.Threading.SendOrPostCallback CreateGroupOperationCompleted;

        private System.Threading.SendOrPostCallback UpdateGroupOperationCompleted;

        private System.Threading.SendOrPostCallback DeleteGroupOperationCompleted;

        private System.Threading.SendOrPostCallback ListExistsOperationCompleted;

        private System.Threading.SendOrPostCallback GetListsOperationCompleted;

        private System.Threading.SendOrPostCallback GetListOperationCompleted;

        private System.Threading.SendOrPostCallback CreateListOperationCompleted;

        private System.Threading.SendOrPostCallback UpdateListOperationCompleted;

        private System.Threading.SendOrPostCallback DeleteListOperationCompleted;

        private System.Threading.SendOrPostCallback MailAliasExistsOperationCompleted;

        private System.Threading.SendOrPostCallback GetMailAliasesOperationCompleted;

        private System.Threading.SendOrPostCallback GetMailAliasOperationCompleted;

        private System.Threading.SendOrPostCallback CreateMailAliasOperationCompleted;

        private System.Threading.SendOrPostCallback UpdateMailAliasOperationCompleted;

        private System.Threading.SendOrPostCallback DeleteMailAliasOperationCompleted;
        

        /// <remarks/>
        public MailServer()
        {
            this.Url = "http://localhost/SolidCPServer11/MailServer.asmx";
        }

        /// <remarks/>
        public event DomainExistsCompletedEventHandler DomainExistsCompleted;

        /// <remarks/>
        public event GetDomainCompletedEventHandler GetDomainCompleted;

        /// <remarks/>
        public event GetDomainsCompletedEventHandler GetDomainsCompleted;

        /// <remarks/>
        public event CreateDomainCompletedEventHandler CreateDomainCompleted;

        /// <remarks/>
        public event UpdateDomainCompletedEventHandler UpdateDomainCompleted;

        /// <remarks/>
        public event DeleteDomainCompletedEventHandler DeleteDomainCompleted;

        /// <remarks/>
        public event DomainAliasExistsCompletedEventHandler DomainAliasExistsCompleted;

        /// <remarks/>
        public event GetDomainAliasesCompletedEventHandler GetDomainAliasesCompleted;

        /// <remarks/>
        public event AddDomainAliasCompletedEventHandler AddDomainAliasCompleted;

        /// <remarks/>
        public event DeleteDomainAliasCompletedEventHandler DeleteDomainAliasCompleted;

        /// <remarks/>
        public event AccountExistsCompletedEventHandler AccountExistsCompleted;

        /// <remarks/>
        public event GetAccountsCompletedEventHandler GetAccountsCompleted;

        /// <remarks/>
        public event GetAccountCompletedEventHandler GetAccountCompleted;

        /// <remarks/>
        public event CreateAccountCompletedEventHandler CreateAccountCompleted;

        /// <remarks/>
        public event UpdateAccountCompletedEventHandler UpdateAccountCompleted;

        /// <remarks/>
        public event DeleteAccountCompletedEventHandler DeleteAccountCompleted;

        /// <remarks/>
        public event GroupExistsCompletedEventHandler GroupExistsCompleted;

        /// <remarks/>
        public event GetGroupsCompletedEventHandler GetGroupsCompleted;

        /// <remarks/>
        public event GetGroupCompletedEventHandler GetGroupCompleted;

        /// <remarks/>
        public event CreateGroupCompletedEventHandler CreateGroupCompleted;

        /// <remarks/>
        public event UpdateGroupCompletedEventHandler UpdateGroupCompleted;

        /// <remarks/>
        public event DeleteGroupCompletedEventHandler DeleteGroupCompleted;

        /// <remarks/>
        public event ListExistsCompletedEventHandler ListExistsCompleted;

        /// <remarks/>
        public event GetListsCompletedEventHandler GetListsCompleted;

        /// <remarks/>
        public event GetListCompletedEventHandler GetListCompleted;

        /// <remarks/>
        public event CreateListCompletedEventHandler CreateListCompleted;

        /// <remarks/>
        public event UpdateListCompletedEventHandler UpdateListCompleted;

        /// <remarks/>
        public event DeleteListCompletedEventHandler DeleteListCompleted;


        public event MailAliasExistsCompletedEventHandler MailAliasExistsCompleted;

        /// <remarks/>
        public event GetMailAliasesCompletedEventHandler GetMailAliasesCompleted;

        /// <remarks/>
        public event GetMailAliasCompletedEventHandler GetMailAliasCompleted;

        /// <remarks/>
        public event CreateMailAliasCompletedEventHandler CreateMailAliasCompleted;

        /// <remarks/>
        public event UpdateMailAliasCompletedEventHandler UpdateMailAliasCompleted;

        /// <remarks/>
        public event DeleteMailAliasCompletedEventHandler DeleteMailAliasCompleted;

        /// <remarks/>

        /// <remarks/>
        [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/DomainExists", RequestNamespace = "http://smbsaas/solidcp/server/", ResponseNamespace = "http://smbsaas/solidcp/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public bool DomainExists(string domainName)
        {
            object[] results = this.Invoke("DomainExists", new object[] {
                        domainName});
            return ((bool)(results[0]));
        }

        /// <remarks/>
        public System.IAsyncResult BeginDomainExists(string domainName, System.AsyncCallback callback, object asyncState)
        {
            return this.BeginInvoke("DomainExists", new object[] {
                        domainName}, callback, asyncState);
        }

        /// <remarks/>
        public bool EndDomainExists(System.IAsyncResult asyncResult)
        {
            object[] results = this.EndInvoke(asyncResult);
            return ((bool)(results[0]));
        }

        /// <remarks/>
        public void DomainExistsAsync(string domainName)
        {
            this.DomainExistsAsync(domainName, null);
        }

        /// <remarks/>
        public void DomainExistsAsync(string domainName, object userState)
        {
            if ((this.DomainExistsOperationCompleted == null))
            {
                this.DomainExistsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnDomainExistsOperationCompleted);
            }
            this.InvokeAsync("DomainExists", new object[] {
                        domainName}, this.DomainExistsOperationCompleted, userState);
        }

        private void OnDomainExistsOperationCompleted(object arg)
        {
            if ((this.DomainExistsCompleted != null))
            {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.DomainExistsCompleted(this, new DomainExistsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }

        /// <remarks/>
        [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/GetDomain", RequestNamespace = "http://smbsaas/solidcp/server/", ResponseNamespace = "http://smbsaas/solidcp/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public MailDomain GetDomain(string domainName)
        {
            object[] results = this.Invoke("GetDomain", new object[] {
                        domainName});
            return ((MailDomain)(results[0]));
        }

        /// <remarks/>
        public System.IAsyncResult BeginGetDomain(string domainName, System.AsyncCallback callback, object asyncState)
        {
            return this.BeginInvoke("GetDomain", new object[] {
                        domainName}, callback, asyncState);
        }

        /// <remarks/>
        public MailDomain EndGetDomain(System.IAsyncResult asyncResult)
        {
            object[] results = this.EndInvoke(asyncResult);
            return ((MailDomain)(results[0]));
        }

        /// <remarks/>
        public void GetDomainAsync(string domainName)
        {
            this.GetDomainAsync(domainName, null);
        }

        /// <remarks/>
        public void GetDomainAsync(string domainName, object userState)
        {
            if ((this.GetDomainOperationCompleted == null))
            {
                this.GetDomainOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetDomainOperationCompleted);
            }
            this.InvokeAsync("GetDomain", new object[] {
                        domainName}, this.GetDomainOperationCompleted, userState);
        }

        private void OnGetDomainOperationCompleted(object arg)
        {
            if ((this.GetDomainCompleted != null))
            {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetDomainCompleted(this, new GetDomainCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }

        /// <remarks/>
        [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/GetDomains", RequestNamespace = "http://smbsaas/solidcp/server/", ResponseNamespace = "http://smbsaas/solidcp/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public string[] GetDomains()
        {
            object[] results = this.Invoke("GetDomains", new object[0]);
            return ((string[])(results[0]));
        }

        /// <remarks/>
        public System.IAsyncResult BeginGetDomains(System.AsyncCallback callback, object asyncState)
        {
            return this.BeginInvoke("GetDomains", new object[0], callback, asyncState);
        }

        /// <remarks/>
        public string[] EndGetDomains(System.IAsyncResult asyncResult)
        {
            object[] results = this.EndInvoke(asyncResult);
            return ((string[])(results[0]));
        }

        /// <remarks/>
        public void GetDomainsAsync()
        {
            this.GetDomainsAsync(null);
        }

        /// <remarks/>
        public void GetDomainsAsync(object userState)
        {
            if ((this.GetDomainsOperationCompleted == null))
            {
                this.GetDomainsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetDomainsOperationCompleted);
            }
            this.InvokeAsync("GetDomains", new object[0], this.GetDomainsOperationCompleted, userState);
        }

        private void OnGetDomainsOperationCompleted(object arg)
        {
            if ((this.GetDomainsCompleted != null))
            {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetDomainsCompleted(this, new GetDomainsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }

        /// <remarks/>
        [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/CreateDomain", RequestNamespace = "http://smbsaas/solidcp/server/", ResponseNamespace = "http://smbsaas/solidcp/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public void CreateDomain(MailDomain domain)
        {
            this.Invoke("CreateDomain", new object[] {
                        domain});
        }

        /// <remarks/>
        public System.IAsyncResult BeginCreateDomain(MailDomain domain, System.AsyncCallback callback, object asyncState)
        {
            return this.BeginInvoke("CreateDomain", new object[] {
                        domain}, callback, asyncState);
        }

        /// <remarks/>
        public void EndCreateDomain(System.IAsyncResult asyncResult)
        {
            this.EndInvoke(asyncResult);
        }

        /// <remarks/>
        public void CreateDomainAsync(MailDomain domain)
        {
            this.CreateDomainAsync(domain, null);
        }

        /// <remarks/>
        public void CreateDomainAsync(MailDomain domain, object userState)
        {
            if ((this.CreateDomainOperationCompleted == null))
            {
                this.CreateDomainOperationCompleted = new System.Threading.SendOrPostCallback(this.OnCreateDomainOperationCompleted);
            }
            this.InvokeAsync("CreateDomain", new object[] {
                        domain}, this.CreateDomainOperationCompleted, userState);
        }

        private void OnCreateDomainOperationCompleted(object arg)
        {
            if ((this.CreateDomainCompleted != null))
            {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.CreateDomainCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }

        /// <remarks/>
        [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/UpdateDomain", RequestNamespace = "http://smbsaas/solidcp/server/", ResponseNamespace = "http://smbsaas/solidcp/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public void UpdateDomain(MailDomain domain)
        {
            this.Invoke("UpdateDomain", new object[] {
                        domain});
        }

        /// <remarks/>
        public System.IAsyncResult BeginUpdateDomain(MailDomain domain, System.AsyncCallback callback, object asyncState)
        {
            return this.BeginInvoke("UpdateDomain", new object[] {
                        domain}, callback, asyncState);
        }

        /// <remarks/>
        public void EndUpdateDomain(System.IAsyncResult asyncResult)
        {
            this.EndInvoke(asyncResult);
        }

        /// <remarks/>
        public void UpdateDomainAsync(MailDomain domain)
        {
            this.UpdateDomainAsync(domain, null);
        }

        /// <remarks/>
        public void UpdateDomainAsync(MailDomain domain, object userState)
        {
            if ((this.UpdateDomainOperationCompleted == null))
            {
                this.UpdateDomainOperationCompleted = new System.Threading.SendOrPostCallback(this.OnUpdateDomainOperationCompleted);
            }
            this.InvokeAsync("UpdateDomain", new object[] {
                        domain}, this.UpdateDomainOperationCompleted, userState);
        }

        private void OnUpdateDomainOperationCompleted(object arg)
        {
            if ((this.UpdateDomainCompleted != null))
            {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.UpdateDomainCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }

        /// <remarks/>
        [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/DeleteDomain", RequestNamespace = "http://smbsaas/solidcp/server/", ResponseNamespace = "http://smbsaas/solidcp/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public void DeleteDomain(string domainName)
        {
            this.Invoke("DeleteDomain", new object[] {
                        domainName});
        }

        /// <remarks/>
        public System.IAsyncResult BeginDeleteDomain(string domainName, System.AsyncCallback callback, object asyncState)
        {
            return this.BeginInvoke("DeleteDomain", new object[] {
                        domainName}, callback, asyncState);
        }

        /// <remarks/>
        public void EndDeleteDomain(System.IAsyncResult asyncResult)
        {
            this.EndInvoke(asyncResult);
        }

        /// <remarks/>
        public void DeleteDomainAsync(string domainName)
        {
            this.DeleteDomainAsync(domainName, null);
        }

        /// <remarks/>
        public void DeleteDomainAsync(string domainName, object userState)
        {
            if ((this.DeleteDomainOperationCompleted == null))
            {
                this.DeleteDomainOperationCompleted = new System.Threading.SendOrPostCallback(this.OnDeleteDomainOperationCompleted);
            }
            this.InvokeAsync("DeleteDomain", new object[] {
                        domainName}, this.DeleteDomainOperationCompleted, userState);
        }

        private void OnDeleteDomainOperationCompleted(object arg)
        {
            if ((this.DeleteDomainCompleted != null))
            {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.DeleteDomainCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }

        /// <remarks/>
        [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/DomainAliasExists", RequestNamespace = "http://smbsaas/solidcp/server/", ResponseNamespace = "http://smbsaas/solidcp/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public bool DomainAliasExists(string domainName, string aliasName)
        {
            object[] results = this.Invoke("DomainAliasExists", new object[] {
                        domainName,
                        aliasName});
            return ((bool)(results[0]));
        }

        /// <remarks/>
        public System.IAsyncResult BeginDomainAliasExists(string domainName, string aliasName, System.AsyncCallback callback, object asyncState)
        {
            return this.BeginInvoke("DomainAliasExists", new object[] {
                        domainName,
                        aliasName}, callback, asyncState);
        }

        /// <remarks/>
        public bool EndDomainAliasExists(System.IAsyncResult asyncResult)
        {
            object[] results = this.EndInvoke(asyncResult);
            return ((bool)(results[0]));
        }

        /// <remarks/>
        public void DomainAliasExistsAsync(string domainName, string aliasName)
        {
            this.DomainAliasExistsAsync(domainName, aliasName, null);
        }

        /// <remarks/>
        public void DomainAliasExistsAsync(string domainName, string aliasName, object userState)
        {
            if ((this.DomainAliasExistsOperationCompleted == null))
            {
                this.DomainAliasExistsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnDomainAliasExistsOperationCompleted);
            }
            this.InvokeAsync("DomainAliasExists", new object[] {
                        domainName,
                        aliasName}, this.DomainAliasExistsOperationCompleted, userState);
        }

        private void OnDomainAliasExistsOperationCompleted(object arg)
        {
            if ((this.DomainAliasExistsCompleted != null))
            {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.DomainAliasExistsCompleted(this, new DomainAliasExistsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }

        /// <remarks/>
        [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/GetDomainAliases", RequestNamespace = "http://smbsaas/solidcp/server/", ResponseNamespace = "http://smbsaas/solidcp/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public string[] GetDomainAliases(string domainName)
        {
            object[] results = this.Invoke("GetDomainAliases", new object[] {
                        domainName});
            return ((string[])(results[0]));
        }

        /// <remarks/>
        public System.IAsyncResult BeginGetDomainAliases(string domainName, System.AsyncCallback callback, object asyncState)
        {
            return this.BeginInvoke("GetDomainAliases", new object[] {
                        domainName}, callback, asyncState);
        }

        /// <remarks/>
        public string[] EndGetDomainAliases(System.IAsyncResult asyncResult)
        {
            object[] results = this.EndInvoke(asyncResult);
            return ((string[])(results[0]));
        }

        /// <remarks/>
        public void GetDomainAliasesAsync(string domainName)
        {
            this.GetDomainAliasesAsync(domainName, null);
        }

        /// <remarks/>
        public void GetDomainAliasesAsync(string domainName, object userState)
        {
            if ((this.GetDomainAliasesOperationCompleted == null))
            {
                this.GetDomainAliasesOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetDomainAliasesOperationCompleted);
            }
            this.InvokeAsync("GetDomainAliases", new object[] {
                        domainName}, this.GetDomainAliasesOperationCompleted, userState);
        }

        private void OnGetDomainAliasesOperationCompleted(object arg)
        {
            if ((this.GetDomainAliasesCompleted != null))
            {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetDomainAliasesCompleted(this, new GetDomainAliasesCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }

        /// <remarks/>
        [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/AddDomainAlias", RequestNamespace = "http://smbsaas/solidcp/server/", ResponseNamespace = "http://smbsaas/solidcp/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public void AddDomainAlias(string domainName, string aliasName)
        {
            this.Invoke("AddDomainAlias", new object[] {
                        domainName,
                        aliasName});
        }

        /// <remarks/>
        public System.IAsyncResult BeginAddDomainAlias(string domainName, string aliasName, System.AsyncCallback callback, object asyncState)
        {
            return this.BeginInvoke("AddDomainAlias", new object[] {
                        domainName,
                        aliasName}, callback, asyncState);
        }

        /// <remarks/>
        public void EndAddDomainAlias(System.IAsyncResult asyncResult)
        {
            this.EndInvoke(asyncResult);
        }

        /// <remarks/>
        public void AddDomainAliasAsync(string domainName, string aliasName)
        {
            this.AddDomainAliasAsync(domainName, aliasName, null);
        }

        /// <remarks/>
        public void AddDomainAliasAsync(string domainName, string aliasName, object userState)
        {
            if ((this.AddDomainAliasOperationCompleted == null))
            {
                this.AddDomainAliasOperationCompleted = new System.Threading.SendOrPostCallback(this.OnAddDomainAliasOperationCompleted);
            }
            this.InvokeAsync("AddDomainAlias", new object[] {
                        domainName,
                        aliasName}, this.AddDomainAliasOperationCompleted, userState);
        }

        private void OnAddDomainAliasOperationCompleted(object arg)
        {
            if ((this.AddDomainAliasCompleted != null))
            {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.AddDomainAliasCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }

        /// <remarks/>
        [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/DeleteDomainAlias", RequestNamespace = "http://smbsaas/solidcp/server/", ResponseNamespace = "http://smbsaas/solidcp/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public void DeleteDomainAlias(string domainName, string aliasName)
        {
            this.Invoke("DeleteDomainAlias", new object[] {
                        domainName,
                        aliasName});
        }

        /// <remarks/>
        public System.IAsyncResult BeginDeleteDomainAlias(string domainName, string aliasName, System.AsyncCallback callback, object asyncState)
        {
            return this.BeginInvoke("DeleteDomainAlias", new object[] {
                        domainName,
                        aliasName}, callback, asyncState);
        }

        /// <remarks/>
        public void EndDeleteDomainAlias(System.IAsyncResult asyncResult)
        {
            this.EndInvoke(asyncResult);
        }

        /// <remarks/>
        public void DeleteDomainAliasAsync(string domainName, string aliasName)
        {
            this.DeleteDomainAliasAsync(domainName, aliasName, null);
        }

        /// <remarks/>
        public void DeleteDomainAliasAsync(string domainName, string aliasName, object userState)
        {
            if ((this.DeleteDomainAliasOperationCompleted == null))
            {
                this.DeleteDomainAliasOperationCompleted = new System.Threading.SendOrPostCallback(this.OnDeleteDomainAliasOperationCompleted);
            }
            this.InvokeAsync("DeleteDomainAlias", new object[] {
                        domainName,
                        aliasName}, this.DeleteDomainAliasOperationCompleted, userState);
        }

        private void OnDeleteDomainAliasOperationCompleted(object arg)
        {
            if ((this.DeleteDomainAliasCompleted != null))
            {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.DeleteDomainAliasCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }

        /// <remarks/>
        [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/AccountExists", RequestNamespace = "http://smbsaas/solidcp/server/", ResponseNamespace = "http://smbsaas/solidcp/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public bool AccountExists(string accountName)
        {
            object[] results = this.Invoke("AccountExists", new object[] {
                        accountName});
            return ((bool)(results[0]));
        }

        /// <remarks/>
        public System.IAsyncResult BeginAccountExists(string accountName, System.AsyncCallback callback, object asyncState)
        {
            return this.BeginInvoke("AccountExists", new object[] {
                        accountName}, callback, asyncState);
        }

        /// <remarks/>
        public bool EndAccountExists(System.IAsyncResult asyncResult)
        {
            object[] results = this.EndInvoke(asyncResult);
            return ((bool)(results[0]));
        }

        /// <remarks/>
        public void AccountExistsAsync(string accountName)
        {
            this.AccountExistsAsync(accountName, null);
        }

        /// <remarks/>
        public void AccountExistsAsync(string accountName, object userState)
        {
            if ((this.AccountExistsOperationCompleted == null))
            {
                this.AccountExistsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnAccountExistsOperationCompleted);
            }
            this.InvokeAsync("AccountExists", new object[] {
                        accountName}, this.AccountExistsOperationCompleted, userState);
        }

        private void OnAccountExistsOperationCompleted(object arg)
        {
            if ((this.AccountExistsCompleted != null))
            {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.AccountExistsCompleted(this, new AccountExistsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }

        /// <remarks/>
        [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/GetAccounts", RequestNamespace = "http://smbsaas/solidcp/server/", ResponseNamespace = "http://smbsaas/solidcp/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public MailAccount[] GetAccounts(string domainName)
        {
            object[] results = this.Invoke("GetAccounts", new object[] {
                        domainName});
            return ((MailAccount[])(results[0]));
        }

        /// <remarks/>
        public System.IAsyncResult BeginGetAccounts(string domainName, System.AsyncCallback callback, object asyncState)
        {
            return this.BeginInvoke("GetAccounts", new object[] {
                        domainName}, callback, asyncState);
        }

        /// <remarks/>
        public MailAccount[] EndGetAccounts(System.IAsyncResult asyncResult)
        {
            object[] results = this.EndInvoke(asyncResult);
            return ((MailAccount[])(results[0]));
        }

        /// <remarks/>
        public void GetAccountsAsync(string domainName)
        {
            this.GetAccountsAsync(domainName, null);
        }

        /// <remarks/>
        public void GetAccountsAsync(string domainName, object userState)
        {
            if ((this.GetAccountsOperationCompleted == null))
            {
                this.GetAccountsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetAccountsOperationCompleted);
            }
            this.InvokeAsync("GetAccounts", new object[] {
                        domainName}, this.GetAccountsOperationCompleted, userState);
        }

        private void OnGetAccountsOperationCompleted(object arg)
        {
            if ((this.GetAccountsCompleted != null))
            {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetAccountsCompleted(this, new GetAccountsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }

        /// <remarks/>
        [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/GetAccount", RequestNamespace = "http://smbsaas/solidcp/server/", ResponseNamespace = "http://smbsaas/solidcp/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public MailAccount GetAccount(string accountName)
        {
            object[] results = this.Invoke("GetAccount", new object[] {
                        accountName});
            return ((MailAccount)(results[0]));
        }

        /// <remarks/>
        public System.IAsyncResult BeginGetAccount(string accountName, System.AsyncCallback callback, object asyncState)
        {
            return this.BeginInvoke("GetAccount", new object[] {
                        accountName}, callback, asyncState);
        }

        /// <remarks/>
        public MailAccount EndGetAccount(System.IAsyncResult asyncResult)
        {
            object[] results = this.EndInvoke(asyncResult);
            return ((MailAccount)(results[0]));
        }

        /// <remarks/>
        public void GetAccountAsync(string accountName)
        {
            this.GetAccountAsync(accountName, null);
        }

        /// <remarks/>
        public void GetAccountAsync(string accountName, object userState)
        {
            if ((this.GetAccountOperationCompleted == null))
            {
                this.GetAccountOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetAccountOperationCompleted);
            }
            this.InvokeAsync("GetAccount", new object[] {
                        accountName}, this.GetAccountOperationCompleted, userState);
        }

        private void OnGetAccountOperationCompleted(object arg)
        {
            if ((this.GetAccountCompleted != null))
            {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetAccountCompleted(this, new GetAccountCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }

        /// <remarks/>
        [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/MailAliasExists", RequestNamespace = "http://smbsaas/solidcp/server/", ResponseNamespace = "http://smbsaas/solidcp/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public bool MailAliasExists(string mailAliasName)
        {
            object[] results = this.Invoke("MailAliasExists", new object[] {
                        mailAliasName});
            return ((bool)(results[0]));
        }

        /// <remarks/>
        public System.IAsyncResult BeginMailAliasExists(string mailAliasName, System.AsyncCallback callback, object asyncState)
        {
            return this.BeginInvoke("MailAliasExists", new object[] {
                        mailAliasName}, callback, asyncState);
        }

        /// <remarks/>
        public bool EndMailAliasExists(System.IAsyncResult asyncResult)
        {
            object[] results = this.EndInvoke(asyncResult);
            return ((bool)(results[0]));
        }

        /// <remarks/>
        public void MailAliasExistsAsync(string mailAliasName)
        {
            this.MailAliasExistsAsync(mailAliasName, null);
        }

        /// <remarks/>
        public void MailAliasExistsAsync(string mailAliasName, object userState)
        {
            if ((this.MailAliasExistsOperationCompleted == null))
            {
                this.MailAliasExistsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnMailAliasExistsOperationCompleted);
            }
            this.InvokeAsync("MailAliasExists", new object[] {
                        mailAliasName}, this.MailAliasExistsOperationCompleted, userState);
        }

        private void OnMailAliasExistsOperationCompleted(object arg)
        {
            if ((this.MailAliasExistsCompleted != null))
            {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.MailAliasExistsCompleted(this, new MailAliasExistsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }

        /// <remarks/>
        [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/GetMailAliases", RequestNamespace = "http://smbsaas/solidcp/server/", ResponseNamespace = "http://smbsaas/solidcp/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public MailAlias[] GetMailAliases(string domainName)
        {
            object[] results = this.Invoke("GetMailAliases", new object[] {
                        domainName});
            return ((MailAlias[])(results[0]));
        }

        /// <remarks/>
        public System.IAsyncResult BeginGetMailAliases(string domainName, System.AsyncCallback callback, object asyncState)
        {
            return this.BeginInvoke("GetMailAliases", new object[] {
                        domainName}, callback, asyncState);
        }

        /// <remarks/>
        public MailAlias[] EndGetMailAliases(System.IAsyncResult asyncResult)
        {
            object[] results = this.EndInvoke(asyncResult);
            return ((MailAlias[])(results[0]));
        }

        /// <remarks/>
        public void GetMailAliasesAsync(string domainName)
        {
            this.GetMailAliasesAsync(domainName, null);
        }

        /// <remarks/>
        public void GetMailAliasesAsync(string domainName, object userState)
        {
            if ((this.GetMailAliasesOperationCompleted == null))
            {
                this.GetMailAliasesOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetMailAliasesOperationCompleted);
            }
            this.InvokeAsync("GetMailAliases", new object[] {
                        domainName}, this.GetMailAliasesOperationCompleted, userState);
        }

        private void OnGetMailAliasesOperationCompleted(object arg)
        {
            if ((this.GetMailAliasesCompleted != null))
            {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetMailAliasesCompleted(this, new GetMailAliasesCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }

        /// <remarks/>
        [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/GetMailAlias", RequestNamespace = "http://smbsaas/solidcp/server/", ResponseNamespace = "http://smbsaas/solidcp/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public MailAlias GetMailAlias(string mailAliasName)
        {
            object[] results = this.Invoke("GetMailAlias", new object[] {
                        mailAliasName});
            return ((MailAlias)(results[0]));
        }

        /// <remarks/>
        public System.IAsyncResult BeginGetMailAlias(string mailAliasName, System.AsyncCallback callback, object asyncState)
        {
            return this.BeginInvoke("GetMailAlias", new object[] {
                        mailAliasName}, callback, asyncState);
        }

        /// <remarks/>
        public MailAlias EndGetMailAlias(System.IAsyncResult asyncResult)
        {
            object[] results = this.EndInvoke(asyncResult);
            return ((MailAlias)(results[0]));
        }

        /// <remarks/>
        public void GetMailAliasAsync(string mailAliasName)
        {
            this.GetMailAliasAsync(mailAliasName, null);
        }

        /// <remarks/>
        public void GetMailAliasAsync(string mailAliasName, object userState)
        {
            if ((this.GetMailAliasOperationCompleted == null))
            {
                this.GetMailAliasOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetMailAliasOperationCompleted);
            }
            this.InvokeAsync("GetMailAlias", new object[] {
                        mailAliasName}, this.GetMailAliasOperationCompleted, userState);
        }

        private void OnGetMailAliasOperationCompleted(object arg)
        {
            if ((this.GetMailAliasCompleted != null))
            {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetMailAliasCompleted(this, new GetMailAliasCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }

        /// <remarks/>
        [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/CreateMailAlias", RequestNamespace = "http://smbsaas/solidcp/server/", ResponseNamespace = "http://smbsaas/solidcp/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public void CreateMailAlias(MailAlias mailAlias)
        {
            this.Invoke("CreateMailAlias", new object[] {
                        mailAlias});
        }

        /// <remarks/>
        public System.IAsyncResult BeginCreateMailAlias(MailAlias mailAlias, System.AsyncCallback callback, object asyncState)
        {
            return this.BeginInvoke("CreateMailAlias", new object[] {
                        mailAlias}, callback, asyncState);
        }

        /// <remarks/>
        public void EndCreateMailAlias(System.IAsyncResult asyncResult)
        {
            this.EndInvoke(asyncResult);
        }

        /// <remarks/>
        public void CreateMailAliasAsync(MailAlias mailAlias)
        {
            this.CreateMailAliasAsync(mailAlias, null);
        }

        /// <remarks/>
        public void CreateMailAliasAsync(MailAlias mailAlias, object userState)
        {
            if ((this.CreateMailAliasOperationCompleted == null))
            {
                this.CreateMailAliasOperationCompleted = new System.Threading.SendOrPostCallback(this.OnCreateMailAliasOperationCompleted);
            }
            this.InvokeAsync("CreateMailAlias", new object[] {
                        mailAlias}, this.CreateMailAliasOperationCompleted, userState);
        }

        private void OnCreateMailAliasOperationCompleted(object arg)
        {
            if ((this.CreateMailAliasCompleted != null))
            {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.CreateMailAliasCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }

        /// <remarks/>
        [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/UpdateMailAlias", RequestNamespace = "http://smbsaas/solidcp/server/", ResponseNamespace = "http://smbsaas/solidcp/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public void UpdateMailAlias(MailAlias mailAlias)
        {
            this.Invoke("UpdateMailAlias", new object[] {
                        mailAlias});
        }

        /// <remarks/>
        public System.IAsyncResult BeginUpdateMailAlias(MailAlias mailAlias, System.AsyncCallback callback, object asyncState)
        {
            return this.BeginInvoke("UpdateMailAlias", new object[] {
                        mailAlias}, callback, asyncState);
        }

        /// <remarks/>
        public void EndUpdateMailAlias(System.IAsyncResult asyncResult)
        {
            this.EndInvoke(asyncResult);
        }

        /// <remarks/>
        public void UpdateMailAliasAsync(MailAlias mailAlias)
        {
            this.UpdateMailAliasAsync(mailAlias, null);
        }

        /// <remarks/>
        public void UpdateMailAliasAsync(MailAlias mailAlias, object userState)
        {
            if ((this.UpdateMailAliasOperationCompleted == null))
            {
                this.UpdateMailAliasOperationCompleted = new System.Threading.SendOrPostCallback(this.OnUpdateMailAliasOperationCompleted);
            }
            this.InvokeAsync("UpdateMailAlias", new object[] {
                        mailAlias}, this.UpdateMailAliasOperationCompleted, userState);
        }

        private void OnUpdateMailAliasOperationCompleted(object arg)
        {
            if ((this.UpdateMailAliasCompleted != null))
            {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.UpdateMailAliasCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }

        /// <remarks/>
        [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/DeleteMailAlias", RequestNamespace = "http://smbsaas/solidcp/server/", ResponseNamespace = "http://smbsaas/solidcp/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public void DeleteMailAlias(string mailAliasName)
        {
            this.Invoke("DeleteMailAlias", new object[] {
                        mailAliasName});
        }

        /// <remarks/>
        public System.IAsyncResult BeginDeleteMailAlias(string mailAliasName, System.AsyncCallback callback, object asyncState)
        {
            return this.BeginInvoke("DeleteMailAlias", new object[] {
                        mailAliasName}, callback, asyncState);
        }

        /// <remarks/>
        public void EndDeleteMailAlias(System.IAsyncResult asyncResult)
        {
            this.EndInvoke(asyncResult);
        }

        /// <remarks/>
        public void DeleteMailAliasAsync(string mailAliasName)
        {
            this.DeleteMailAliasAsync(mailAliasName, null);
        }

        /// <remarks/>
        public void DeleteMailAliasAsync(string mailAliasName, object userState)
        {
            if ((this.DeleteMailAliasOperationCompleted == null))
            {
                this.DeleteMailAliasOperationCompleted = new System.Threading.SendOrPostCallback(this.OnDeleteMailAliasOperationCompleted);
            }
            this.InvokeAsync("DeleteMailAlias", new object[] {
                        mailAliasName}, this.DeleteMailAliasOperationCompleted, userState);
        }

        private void OnDeleteMailAliasOperationCompleted(object arg)
        {
            if ((this.DeleteMailAliasCompleted != null))
            {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.DeleteMailAliasCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }

        /// <remarks/>
        [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
        public delegate void MailAliasExistsCompletedEventHandler(object sender, MailAliasExistsCompletedEventArgs e);

        /// <remarks/>
        [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
        [System.Diagnostics.DebuggerStepThroughAttribute()]
        [System.ComponentModel.DesignerCategoryAttribute("code")]
        public partial class MailAliasExistsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
        {

            private object[] results;

            internal MailAliasExistsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
                base(exception, cancelled, userState)
            {
                this.results = results;
            }

            /// <remarks/>
            public bool Result
            {
                get
                {
                    this.RaiseExceptionIfNecessary();
                    return ((bool)(this.results[0]));
                }
            }
        }

        /// <remarks/>
        [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
        public delegate void GetMailAliasesCompletedEventHandler(object sender, GetMailAliasesCompletedEventArgs e);

        /// <remarks/>
        [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
        [System.Diagnostics.DebuggerStepThroughAttribute()]
        [System.ComponentModel.DesignerCategoryAttribute("code")]
        public partial class GetMailAliasesCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
        {

            private object[] results;

            internal GetMailAliasesCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
                base(exception, cancelled, userState)
            {
                this.results = results;
            }

            /// <remarks/>
            public MailAlias[] Result
            {
                get
                {
                    this.RaiseExceptionIfNecessary();
                    return ((MailAlias[])(this.results[0]));
                }
            }
        }

        /// <remarks/>
        [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
        public delegate void GetMailAliasCompletedEventHandler(object sender, GetMailAliasCompletedEventArgs e);

        /// <remarks/>
        [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
        [System.Diagnostics.DebuggerStepThroughAttribute()]
        [System.ComponentModel.DesignerCategoryAttribute("code")]
        public partial class GetMailAliasCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
        {

            private object[] results;

            internal GetMailAliasCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
                base(exception, cancelled, userState)
            {
                this.results = results;
            }

            /// <remarks/>
            public MailAlias Result
            {
                get
                {
                    this.RaiseExceptionIfNecessary();
                    return ((MailAlias)(this.results[0]));
                }
            }
        }

        /// <remarks/>
        [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
        public delegate void CreateMailAliasCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);

        /// <remarks/>
        [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
        public delegate void UpdateMailAliasCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);

        /// <remarks/>
        [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
        public delegate void DeleteMailAliasCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);
    

        /// <remarks/>
        [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/CreateAccount", RequestNamespace = "http://smbsaas/solidcp/server/", ResponseNamespace = "http://smbsaas/solidcp/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public void CreateAccount(MailAccount account)
        {
            this.Invoke("CreateAccount", new object[] {
                        account});
        }

        /// <remarks/>
        public System.IAsyncResult BeginCreateAccount(MailAccount account, System.AsyncCallback callback, object asyncState)
        {
            return this.BeginInvoke("CreateAccount", new object[] {
                        account}, callback, asyncState);
        }

        /// <remarks/>
        public void EndCreateAccount(System.IAsyncResult asyncResult)
        {
            this.EndInvoke(asyncResult);
        }

        /// <remarks/>
        public void CreateAccountAsync(MailAccount account)
        {
            this.CreateAccountAsync(account, null);
        }

        /// <remarks/>
        public void CreateAccountAsync(MailAccount account, object userState)
        {
            if ((this.CreateAccountOperationCompleted == null))
            {
                this.CreateAccountOperationCompleted = new System.Threading.SendOrPostCallback(this.OnCreateAccountOperationCompleted);
            }
            this.InvokeAsync("CreateAccount", new object[] {
                        account}, this.CreateAccountOperationCompleted, userState);
        }

        private void OnCreateAccountOperationCompleted(object arg)
        {
            if ((this.CreateAccountCompleted != null))
            {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.CreateAccountCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }

        /// <remarks/>
        [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/UpdateAccount", RequestNamespace = "http://smbsaas/solidcp/server/", ResponseNamespace = "http://smbsaas/solidcp/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public void UpdateAccount(MailAccount account)
        {
            this.Invoke("UpdateAccount", new object[] {
                        account});
        }

        /// <remarks/>
        public System.IAsyncResult BeginUpdateAccount(MailAccount account, System.AsyncCallback callback, object asyncState)
        {
            return this.BeginInvoke("UpdateAccount", new object[] {
                        account}, callback, asyncState);
        }

        /// <remarks/>
        public void EndUpdateAccount(System.IAsyncResult asyncResult)
        {
            this.EndInvoke(asyncResult);
        }

        /// <remarks/>
        public void UpdateAccountAsync(MailAccount account)
        {
            this.UpdateAccountAsync(account, null);
        }

        /// <remarks/>
        public void UpdateAccountAsync(MailAccount account, object userState)
        {
            if ((this.UpdateAccountOperationCompleted == null))
            {
                this.UpdateAccountOperationCompleted = new System.Threading.SendOrPostCallback(this.OnUpdateAccountOperationCompleted);
            }
            this.InvokeAsync("UpdateAccount", new object[] {
                        account}, this.UpdateAccountOperationCompleted, userState);
        }

        private void OnUpdateAccountOperationCompleted(object arg)
        {
            if ((this.UpdateAccountCompleted != null))
            {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.UpdateAccountCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }

        /// <remarks/>
        [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/DeleteAccount", RequestNamespace = "http://smbsaas/solidcp/server/", ResponseNamespace = "http://smbsaas/solidcp/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public void DeleteAccount(string accountName)
        {
            this.Invoke("DeleteAccount", new object[] {
                        accountName});
        }

        /// <remarks/>
        public System.IAsyncResult BeginDeleteAccount(string accountName, System.AsyncCallback callback, object asyncState)
        {
            return this.BeginInvoke("DeleteAccount", new object[] {
                        accountName}, callback, asyncState);
        }

        /// <remarks/>
        public void EndDeleteAccount(System.IAsyncResult asyncResult)
        {
            this.EndInvoke(asyncResult);
        }

        /// <remarks/>
        public void DeleteAccountAsync(string accountName)
        {
            this.DeleteAccountAsync(accountName, null);
        }

        /// <remarks/>
        public void DeleteAccountAsync(string accountName, object userState)
        {
            if ((this.DeleteAccountOperationCompleted == null))
            {
                this.DeleteAccountOperationCompleted = new System.Threading.SendOrPostCallback(this.OnDeleteAccountOperationCompleted);
            }
            this.InvokeAsync("DeleteAccount", new object[] {
                        accountName}, this.DeleteAccountOperationCompleted, userState);
        }

        private void OnDeleteAccountOperationCompleted(object arg)
        {
            if ((this.DeleteAccountCompleted != null))
            {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.DeleteAccountCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }

        /// <remarks/>
        [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/GroupExists", RequestNamespace = "http://smbsaas/solidcp/server/", ResponseNamespace = "http://smbsaas/solidcp/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public bool GroupExists(string groupName)
        {
            object[] results = this.Invoke("GroupExists", new object[] {
                        groupName});
            return ((bool)(results[0]));
        }

        /// <remarks/>
        public System.IAsyncResult BeginGroupExists(string groupName, System.AsyncCallback callback, object asyncState)
        {
            return this.BeginInvoke("GroupExists", new object[] {
                        groupName}, callback, asyncState);
        }

        /// <remarks/>
        public bool EndGroupExists(System.IAsyncResult asyncResult)
        {
            object[] results = this.EndInvoke(asyncResult);
            return ((bool)(results[0]));
        }

        /// <remarks/>
        public void GroupExistsAsync(string groupName)
        {
            this.GroupExistsAsync(groupName, null);
        }

        /// <remarks/>
        public void GroupExistsAsync(string groupName, object userState)
        {
            if ((this.GroupExistsOperationCompleted == null))
            {
                this.GroupExistsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGroupExistsOperationCompleted);
            }
            this.InvokeAsync("GroupExists", new object[] {
                        groupName}, this.GroupExistsOperationCompleted, userState);
        }

        private void OnGroupExistsOperationCompleted(object arg)
        {
            if ((this.GroupExistsCompleted != null))
            {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GroupExistsCompleted(this, new GroupExistsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }

        /// <remarks/>
        [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/GetGroups", RequestNamespace = "http://smbsaas/solidcp/server/", ResponseNamespace = "http://smbsaas/solidcp/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public MailGroup[] GetGroups(string domainName)
        {
            object[] results = this.Invoke("GetGroups", new object[] {
                        domainName});
            return ((MailGroup[])(results[0]));
        }

        /// <remarks/>
        public System.IAsyncResult BeginGetGroups(string domainName, System.AsyncCallback callback, object asyncState)
        {
            return this.BeginInvoke("GetGroups", new object[] {
                        domainName}, callback, asyncState);
        }

        /// <remarks/>
        public MailGroup[] EndGetGroups(System.IAsyncResult asyncResult)
        {
            object[] results = this.EndInvoke(asyncResult);
            return ((MailGroup[])(results[0]));
        }

        /// <remarks/>
        public void GetGroupsAsync(string domainName)
        {
            this.GetGroupsAsync(domainName, null);
        }

        /// <remarks/>
        public void GetGroupsAsync(string domainName, object userState)
        {
            if ((this.GetGroupsOperationCompleted == null))
            {
                this.GetGroupsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetGroupsOperationCompleted);
            }
            this.InvokeAsync("GetGroups", new object[] {
                        domainName}, this.GetGroupsOperationCompleted, userState);
        }

        private void OnGetGroupsOperationCompleted(object arg)
        {
            if ((this.GetGroupsCompleted != null))
            {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetGroupsCompleted(this, new GetGroupsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }

        /// <remarks/>
        [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/GetGroup", RequestNamespace = "http://smbsaas/solidcp/server/", ResponseNamespace = "http://smbsaas/solidcp/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public MailGroup GetGroup(string groupName)
        {
            object[] results = this.Invoke("GetGroup", new object[] {
                        groupName});
            return ((MailGroup)(results[0]));
        }

        /// <remarks/>
        public System.IAsyncResult BeginGetGroup(string groupName, System.AsyncCallback callback, object asyncState)
        {
            return this.BeginInvoke("GetGroup", new object[] {
                        groupName}, callback, asyncState);
        }

        /// <remarks/>
        public MailGroup EndGetGroup(System.IAsyncResult asyncResult)
        {
            object[] results = this.EndInvoke(asyncResult);
            return ((MailGroup)(results[0]));
        }

        /// <remarks/>
        public void GetGroupAsync(string groupName)
        {
            this.GetGroupAsync(groupName, null);
        }

        /// <remarks/>
        public void GetGroupAsync(string groupName, object userState)
        {
            if ((this.GetGroupOperationCompleted == null))
            {
                this.GetGroupOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetGroupOperationCompleted);
            }
            this.InvokeAsync("GetGroup", new object[] {
                        groupName}, this.GetGroupOperationCompleted, userState);
        }

        private void OnGetGroupOperationCompleted(object arg)
        {
            if ((this.GetGroupCompleted != null))
            {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetGroupCompleted(this, new GetGroupCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }

        /// <remarks/>
        [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/CreateGroup", RequestNamespace = "http://smbsaas/solidcp/server/", ResponseNamespace = "http://smbsaas/solidcp/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public void CreateGroup(MailGroup group)
        {
            this.Invoke("CreateGroup", new object[] {
                        group});
        }

        /// <remarks/>
        public System.IAsyncResult BeginCreateGroup(MailGroup group, System.AsyncCallback callback, object asyncState)
        {
            return this.BeginInvoke("CreateGroup", new object[] {
                        group}, callback, asyncState);
        }

        /// <remarks/>
        public void EndCreateGroup(System.IAsyncResult asyncResult)
        {
            this.EndInvoke(asyncResult);
        }

        /// <remarks/>
        public void CreateGroupAsync(MailGroup group)
        {
            this.CreateGroupAsync(group, null);
        }

        /// <remarks/>
        public void CreateGroupAsync(MailGroup group, object userState)
        {
            if ((this.CreateGroupOperationCompleted == null))
            {
                this.CreateGroupOperationCompleted = new System.Threading.SendOrPostCallback(this.OnCreateGroupOperationCompleted);
            }
            this.InvokeAsync("CreateGroup", new object[] {
                        group}, this.CreateGroupOperationCompleted, userState);
        }

        private void OnCreateGroupOperationCompleted(object arg)
        {
            if ((this.CreateGroupCompleted != null))
            {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.CreateGroupCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }

        /// <remarks/>
        [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/UpdateGroup", RequestNamespace = "http://smbsaas/solidcp/server/", ResponseNamespace = "http://smbsaas/solidcp/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public void UpdateGroup(MailGroup group)
        {
            this.Invoke("UpdateGroup", new object[] {
                        group});
        }

        /// <remarks/>
        public System.IAsyncResult BeginUpdateGroup(MailGroup group, System.AsyncCallback callback, object asyncState)
        {
            return this.BeginInvoke("UpdateGroup", new object[] {
                        group}, callback, asyncState);
        }

        /// <remarks/>
        public void EndUpdateGroup(System.IAsyncResult asyncResult)
        {
            this.EndInvoke(asyncResult);
        }

        /// <remarks/>
        public void UpdateGroupAsync(MailGroup group)
        {
            this.UpdateGroupAsync(group, null);
        }

        /// <remarks/>
        public void UpdateGroupAsync(MailGroup group, object userState)
        {
            if ((this.UpdateGroupOperationCompleted == null))
            {
                this.UpdateGroupOperationCompleted = new System.Threading.SendOrPostCallback(this.OnUpdateGroupOperationCompleted);
            }
            this.InvokeAsync("UpdateGroup", new object[] {
                        group}, this.UpdateGroupOperationCompleted, userState);
        }

        private void OnUpdateGroupOperationCompleted(object arg)
        {
            if ((this.UpdateGroupCompleted != null))
            {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.UpdateGroupCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }

        /// <remarks/>
        [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/DeleteGroup", RequestNamespace = "http://smbsaas/solidcp/server/", ResponseNamespace = "http://smbsaas/solidcp/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public void DeleteGroup(string groupName)
        {
            this.Invoke("DeleteGroup", new object[] {
                        groupName});
        }

        /// <remarks/>
        public System.IAsyncResult BeginDeleteGroup(string groupName, System.AsyncCallback callback, object asyncState)
        {
            return this.BeginInvoke("DeleteGroup", new object[] {
                        groupName}, callback, asyncState);
        }

        /// <remarks/>
        public void EndDeleteGroup(System.IAsyncResult asyncResult)
        {
            this.EndInvoke(asyncResult);
        }

        /// <remarks/>
        public void DeleteGroupAsync(string groupName)
        {
            this.DeleteGroupAsync(groupName, null);
        }

        /// <remarks/>
        public void DeleteGroupAsync(string groupName, object userState)
        {
            if ((this.DeleteGroupOperationCompleted == null))
            {
                this.DeleteGroupOperationCompleted = new System.Threading.SendOrPostCallback(this.OnDeleteGroupOperationCompleted);
            }
            this.InvokeAsync("DeleteGroup", new object[] {
                        groupName}, this.DeleteGroupOperationCompleted, userState);
        }

        private void OnDeleteGroupOperationCompleted(object arg)
        {
            if ((this.DeleteGroupCompleted != null))
            {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.DeleteGroupCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }

        /// <remarks/>
        [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/ListExists", RequestNamespace = "http://smbsaas/solidcp/server/", ResponseNamespace = "http://smbsaas/solidcp/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public bool ListExists(string listName)
        {
            object[] results = this.Invoke("ListExists", new object[] {
                        listName});
            return ((bool)(results[0]));
        }

        /// <remarks/>
        public System.IAsyncResult BeginListExists(string listName, System.AsyncCallback callback, object asyncState)
        {
            return this.BeginInvoke("ListExists", new object[] {
                        listName}, callback, asyncState);
        }

        /// <remarks/>
        public bool EndListExists(System.IAsyncResult asyncResult)
        {
            object[] results = this.EndInvoke(asyncResult);
            return ((bool)(results[0]));
        }

        /// <remarks/>
        public void ListExistsAsync(string listName)
        {
            this.ListExistsAsync(listName, null);
        }

        /// <remarks/>
        public void ListExistsAsync(string listName, object userState)
        {
            if ((this.ListExistsOperationCompleted == null))
            {
                this.ListExistsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnListExistsOperationCompleted);
            }
            this.InvokeAsync("ListExists", new object[] {
                        listName}, this.ListExistsOperationCompleted, userState);
        }

        private void OnListExistsOperationCompleted(object arg)
        {
            if ((this.ListExistsCompleted != null))
            {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.ListExistsCompleted(this, new ListExistsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }

        /// <remarks/>
        [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/GetLists", RequestNamespace = "http://smbsaas/solidcp/server/", ResponseNamespace = "http://smbsaas/solidcp/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public MailList[] GetLists(string domainName)
        {
            object[] results = this.Invoke("GetLists", new object[] {
                        domainName});
            return ((MailList[])(results[0]));
        }

        /// <remarks/>
        public System.IAsyncResult BeginGetLists(string domainName, System.AsyncCallback callback, object asyncState)
        {
            return this.BeginInvoke("GetLists", new object[] {
                        domainName}, callback, asyncState);
        }

        /// <remarks/>
        public MailList[] EndGetLists(System.IAsyncResult asyncResult)
        {
            object[] results = this.EndInvoke(asyncResult);
            return ((MailList[])(results[0]));
        }

        /// <remarks/>
        public void GetListsAsync(string domainName)
        {
            this.GetListsAsync(domainName, null);
        }

        /// <remarks/>
        public void GetListsAsync(string domainName, object userState)
        {
            if ((this.GetListsOperationCompleted == null))
            {
                this.GetListsOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetListsOperationCompleted);
            }
            this.InvokeAsync("GetLists", new object[] {
                        domainName}, this.GetListsOperationCompleted, userState);
        }

        private void OnGetListsOperationCompleted(object arg)
        {
            if ((this.GetListsCompleted != null))
            {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetListsCompleted(this, new GetListsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }

        /// <remarks/>
        [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/GetList", RequestNamespace = "http://smbsaas/solidcp/server/", ResponseNamespace = "http://smbsaas/solidcp/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public MailList GetList(string listName)
        {
            object[] results = this.Invoke("GetList", new object[] {
                        listName});
            return ((MailList)(results[0]));
        }

        /// <remarks/>
        public System.IAsyncResult BeginGetList(string listName, System.AsyncCallback callback, object asyncState)
        {
            return this.BeginInvoke("GetList", new object[] {
                        listName}, callback, asyncState);
        }

        /// <remarks/>
        public MailList EndGetList(System.IAsyncResult asyncResult)
        {
            object[] results = this.EndInvoke(asyncResult);
            return ((MailList)(results[0]));
        }

        /// <remarks/>
        public void GetListAsync(string listName)
        {
            this.GetListAsync(listName, null);
        }

        /// <remarks/>
        public void GetListAsync(string listName, object userState)
        {
            if ((this.GetListOperationCompleted == null))
            {
                this.GetListOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetListOperationCompleted);
            }
            this.InvokeAsync("GetList", new object[] {
                        listName}, this.GetListOperationCompleted, userState);
        }

        private void OnGetListOperationCompleted(object arg)
        {
            if ((this.GetListCompleted != null))
            {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.GetListCompleted(this, new GetListCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }

        /// <remarks/>
        [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/CreateList", RequestNamespace = "http://smbsaas/solidcp/server/", ResponseNamespace = "http://smbsaas/solidcp/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public void CreateList(MailList list)
        {
            this.Invoke("CreateList", new object[] {
                        list});
        }

        /// <remarks/>
        public System.IAsyncResult BeginCreateList(MailList list, System.AsyncCallback callback, object asyncState)
        {
            return this.BeginInvoke("CreateList", new object[] {
                        list}, callback, asyncState);
        }

        /// <remarks/>
        public void EndCreateList(System.IAsyncResult asyncResult)
        {
            this.EndInvoke(asyncResult);
        }

        /// <remarks/>
        public void CreateListAsync(MailList list)
        {
            this.CreateListAsync(list, null);
        }

        /// <remarks/>
        public void CreateListAsync(MailList list, object userState)
        {
            if ((this.CreateListOperationCompleted == null))
            {
                this.CreateListOperationCompleted = new System.Threading.SendOrPostCallback(this.OnCreateListOperationCompleted);
            }
            this.InvokeAsync("CreateList", new object[] {
                        list}, this.CreateListOperationCompleted, userState);
        }

        private void OnCreateListOperationCompleted(object arg)
        {
            if ((this.CreateListCompleted != null))
            {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.CreateListCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }

        /// <remarks/>
        [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/UpdateList", RequestNamespace = "http://smbsaas/solidcp/server/", ResponseNamespace = "http://smbsaas/solidcp/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public void UpdateList(MailList list)
        {
            this.Invoke("UpdateList", new object[] {
                        list});
        }

        /// <remarks/>
        public System.IAsyncResult BeginUpdateList(MailList list, System.AsyncCallback callback, object asyncState)
        {
            return this.BeginInvoke("UpdateList", new object[] {
                        list}, callback, asyncState);
        }

        /// <remarks/>
        public void EndUpdateList(System.IAsyncResult asyncResult)
        {
            this.EndInvoke(asyncResult);
        }

        /// <remarks/>
        public void UpdateListAsync(MailList list)
        {
            this.UpdateListAsync(list, null);
        }

        /// <remarks/>
        public void UpdateListAsync(MailList list, object userState)
        {
            if ((this.UpdateListOperationCompleted == null))
            {
                this.UpdateListOperationCompleted = new System.Threading.SendOrPostCallback(this.OnUpdateListOperationCompleted);
            }
            this.InvokeAsync("UpdateList", new object[] {
                        list}, this.UpdateListOperationCompleted, userState);
        }

        private void OnUpdateListOperationCompleted(object arg)
        {
            if ((this.UpdateListCompleted != null))
            {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.UpdateListCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }

        /// <remarks/>
        [System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/solidcp/server/DeleteList", RequestNamespace = "http://smbsaas/solidcp/server/", ResponseNamespace = "http://smbsaas/solidcp/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
        public void DeleteList(string listName)
        {
            this.Invoke("DeleteList", new object[] {
                        listName});
        }

        /// <remarks/>
        public System.IAsyncResult BeginDeleteList(string listName, System.AsyncCallback callback, object asyncState)
        {
            return this.BeginInvoke("DeleteList", new object[] {
                        listName}, callback, asyncState);
        }

        /// <remarks/>
        public void EndDeleteList(System.IAsyncResult asyncResult)
        {
            this.EndInvoke(asyncResult);
        }

        /// <remarks/>
        public void DeleteListAsync(string listName)
        {
            this.DeleteListAsync(listName, null);
        }

        /// <remarks/>
        public void DeleteListAsync(string listName, object userState)
        {
            if ((this.DeleteListOperationCompleted == null))
            {
                this.DeleteListOperationCompleted = new System.Threading.SendOrPostCallback(this.OnDeleteListOperationCompleted);
            }
            this.InvokeAsync("DeleteList", new object[] {
                        listName}, this.DeleteListOperationCompleted, userState);
        }

        private void OnDeleteListOperationCompleted(object arg)
        {
            if ((this.DeleteListCompleted != null))
            {
                System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
                this.DeleteListCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
            }
        }

        /// <remarks/>
        public new void CancelAsync(object userState)
        {
            base.CancelAsync(userState);
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void DomainExistsCompletedEventHandler(object sender, DomainExistsCompletedEventArgs e);

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class DomainExistsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
    {

        private object[] results;

        internal DomainExistsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState)
            :
                base(exception, cancelled, userState)
        {
            this.results = results;
        }

        /// <remarks/>
        public bool Result
        {
            get
            {
                this.RaiseExceptionIfNecessary();
                return ((bool)(this.results[0]));
            }
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void GetDomainCompletedEventHandler(object sender, GetDomainCompletedEventArgs e);

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetDomainCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
    {

        private object[] results;

        internal GetDomainCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState)
            :
                base(exception, cancelled, userState)
        {
            this.results = results;
        }

        /// <remarks/>
        public MailDomain Result
        {
            get
            {
                this.RaiseExceptionIfNecessary();
                return ((MailDomain)(this.results[0]));
            }
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void GetDomainsCompletedEventHandler(object sender, GetDomainsCompletedEventArgs e);

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetDomainsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
    {

        private object[] results;

        internal GetDomainsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState)
            :
                base(exception, cancelled, userState)
        {
            this.results = results;
        }

        /// <remarks/>
        public string[] Result
        {
            get
            {
                this.RaiseExceptionIfNecessary();
                return ((string[])(this.results[0]));
            }
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void CreateDomainCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void UpdateDomainCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void DeleteDomainCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void DomainAliasExistsCompletedEventHandler(object sender, DomainAliasExistsCompletedEventArgs e);

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class DomainAliasExistsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
    {

        private object[] results;

        internal DomainAliasExistsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState)
            :
                base(exception, cancelled, userState)
        {
            this.results = results;
        }

        /// <remarks/>
        public bool Result
        {
            get
            {
                this.RaiseExceptionIfNecessary();
                return ((bool)(this.results[0]));
            }
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void GetDomainAliasesCompletedEventHandler(object sender, GetDomainAliasesCompletedEventArgs e);

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetDomainAliasesCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
    {

        private object[] results;

        internal GetDomainAliasesCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState)
            :
                base(exception, cancelled, userState)
        {
            this.results = results;
        }

        /// <remarks/>
        public string[] Result
        {
            get
            {
                this.RaiseExceptionIfNecessary();
                return ((string[])(this.results[0]));
            }
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void AddDomainAliasCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void DeleteDomainAliasCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void AccountExistsCompletedEventHandler(object sender, AccountExistsCompletedEventArgs e);

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class AccountExistsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
    {

        private object[] results;

        internal AccountExistsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState)
            :
                base(exception, cancelled, userState)
        {
            this.results = results;
        }

        /// <remarks/>
        public bool Result
        {
            get
            {
                this.RaiseExceptionIfNecessary();
                return ((bool)(this.results[0]));
            }
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void GetAccountsCompletedEventHandler(object sender, GetAccountsCompletedEventArgs e);

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetAccountsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
    {

        private object[] results;

        internal GetAccountsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState)
            :
                base(exception, cancelled, userState)
        {
            this.results = results;
        }

        /// <remarks/>
        public MailAccount[] Result
        {
            get
            {
                this.RaiseExceptionIfNecessary();
                return ((MailAccount[])(this.results[0]));
            }
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void GetAccountCompletedEventHandler(object sender, GetAccountCompletedEventArgs e);

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetAccountCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
    {

        private object[] results;

        internal GetAccountCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState)
            :
                base(exception, cancelled, userState)
        {
            this.results = results;
        }

        /// <remarks/>
        public MailAccount Result
        {
            get
            {
                this.RaiseExceptionIfNecessary();
                return ((MailAccount)(this.results[0]));
            }
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void CreateAccountCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void UpdateAccountCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void DeleteAccountCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void GroupExistsCompletedEventHandler(object sender, GroupExistsCompletedEventArgs e);

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GroupExistsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
    {

        private object[] results;

        internal GroupExistsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState)
            :
                base(exception, cancelled, userState)
        {
            this.results = results;
        }

        /// <remarks/>
        public bool Result
        {
            get
            {
                this.RaiseExceptionIfNecessary();
                return ((bool)(this.results[0]));
            }
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void GetGroupsCompletedEventHandler(object sender, GetGroupsCompletedEventArgs e);

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetGroupsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
    {

        private object[] results;

        internal GetGroupsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState)
            :
                base(exception, cancelled, userState)
        {
            this.results = results;
        }

        /// <remarks/>
        public MailGroup[] Result
        {
            get
            {
                this.RaiseExceptionIfNecessary();
                return ((MailGroup[])(this.results[0]));
            }
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void GetGroupCompletedEventHandler(object sender, GetGroupCompletedEventArgs e);

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetGroupCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
    {

        private object[] results;

        internal GetGroupCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState)
            :
                base(exception, cancelled, userState)
        {
            this.results = results;
        }

        /// <remarks/>
        public MailGroup Result
        {
            get
            {
                this.RaiseExceptionIfNecessary();
                return ((MailGroup)(this.results[0]));
            }
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void CreateGroupCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void UpdateGroupCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void DeleteGroupCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void ListExistsCompletedEventHandler(object sender, ListExistsCompletedEventArgs e);

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class ListExistsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
    {

        private object[] results;

        internal ListExistsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState)
            :
                base(exception, cancelled, userState)
        {
            this.results = results;
        }

        /// <remarks/>
        public bool Result
        {
            get
            {
                this.RaiseExceptionIfNecessary();
                return ((bool)(this.results[0]));
            }
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void GetListsCompletedEventHandler(object sender, GetListsCompletedEventArgs e);

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetListsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
    {

        private object[] results;

        internal GetListsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState)
            :
                base(exception, cancelled, userState)
        {
            this.results = results;
        }

        /// <remarks/>
        public MailList[] Result
        {
            get
            {
                this.RaiseExceptionIfNecessary();
                return ((MailList[])(this.results[0]));
            }
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void GetListCompletedEventHandler(object sender, GetListCompletedEventArgs e);

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public partial class GetListCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
    {

        private object[] results;

        internal GetListCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState)
            :
                base(exception, cancelled, userState)
        {
            this.results = results;
        }

        /// <remarks/>
        public MailList Result
        {
            get
            {
                this.RaiseExceptionIfNecessary();
                return ((MailList)(this.results[0]));
            }
        }
    }

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void CreateListCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void UpdateListCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);

    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
    public delegate void DeleteListCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);
}
